// let new = function (Parent, ...args) {
//   // 第1，2，3步，穿建新对象，并，并将构造函数的原型（属性）赋值给这个对象
//   let child = Object.create(Parent.prototype)
//   Object.setPrototypeOf(child, Parent.prototype)
//   Parent.apply(child, rest)
//   return child
// }

let obj = new Object()
console.log(obj.__proto__)
// args = undefined
// console.log([...args])
// const instance = new Object()

function gc() {
  let obj = new Object()
  return obj
}
const cp = gc()
console.log(cp.__proto__)

// 原型模式
function Person() {
  Person.prototype.name = 'zs'
}
const zs = new Person()
console.log(zs.__proto__)

// 构造函数
function Happy() {
  this.name = '开心'
}
const xinqing = new Happy()
console.log(xinqing.__proto__)

// 字面量
const ls = {}
console.log(ls.__proto__)

const oc = Object.create({})
console.log(oc.__proto__)

